home *** CD-ROM | disk | FTP | other *** search
/ The Art Effects Collectio…ks & Ghosted Backgrounds / The Art Effects Collection: Watermarks & Ghosted Backgrounds.iso / for_pc / pixsetup.ms_ < prev    next >
Text File  |  1994-12-19  |  26KB  |  903 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit PixFolio
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'mscuistf.inc'
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME       = 100
  13. CONST ASKQUIT       = 200
  14. CONST DESTPATH      = 300
  15. CONST EXITFAILURE   = 400
  16. CONST EXITQUIT      = 600
  17. CONST EXITSUCCESS   = 700
  18. CONST EXITREGISTERED= 750
  19. CONST OPTIONS       = 800
  20. CONST APPHELP       = 900
  21. CONST CUSTHELP      = 910
  22. CONST REGHELP       = 920
  23. CONST CUSTINST      = 6200
  24. CONST TOOBIG        = 6300
  25. CONST NOAVI         = 6350
  26. CONST NOAPP         = 6360
  27. CONST BADPATH       = 6400
  28. CONST CDGETNAMEORG  = 7500
  29. CONST MODELESS      = 5000
  30. CONST QUITWIN       = 6500
  31.  
  32. ''Bitmap ID
  33. CONST LOGO = 1
  34.  
  35. ''File Types
  36. CONST APPFILES     = 1
  37. CONST OPTFILES1    = 2
  38. CONST OPTFILES2    = 3
  39. CONST OPTFILES3    = 4
  40. CONST SYMFILES     = 5
  41.  
  42.  
  43. GLOBAL DEST$        ''Default destination directory.
  44. GLOBAL WINDRIVE$    ''Windows drive letter.
  45. GLOBAL OPTCUR$      ''Option selection from option dialog.
  46. GLOBAL CUIDLL$      ''Custom user interface DLL
  47. GLOBAL szTempDir$   ''Working directory
  48. GLOBAL SysDir$      ''Windows System Directory
  49. GLOBAL ini$         ''INI file path
  50. GLOBAL NOPT$
  51.  
  52. GLOBAL OPT1OPT$     ''Option selection from OptFiles1 option dialog.
  53. GLOBAL OPT2OPT$     ''Option selection from OptFiles2 option dialog.
  54. GLOBAL OPT3OPT$
  55. GLOBAL SYMOPT$      ''Option selection for symbol files.
  56.  
  57. ''CustInst list symbol names
  58. GLOBAL APPNEEDS$    ''Option list costs per drive
  59. GLOBAL OPT1NEEDS$
  60. GLOBAL OPT2NEEDS$
  61. GLOBAL OPT3NEEDS$   ''Multimedia files
  62. GLOBAL SYMNEEDS$
  63. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  64. GLOBAL BIGLIST$     ''List of option files cost calc results (boolean)
  65.  
  66. ''Dialog list symbol names
  67. GLOBAL CHECKSTATES$
  68. GLOBAL STATUSTEXT$
  69. GLOBAL DRIVETEXT$
  70.  
  71.  
  72. DECLARE SUB AddOptFilesToCopyList (ftype%)
  73. DECLARE SUB RecalcOptFiles (ftype%)
  74. DECLARE SUB RecalcPath
  75. DECLARE SUB SetDriveStatus
  76. DECLARE SUB Install
  77. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  78.  
  79.  
  80. INIT:
  81.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  82.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  83.  
  84.     SetBitmap CUIDLL$, LOGO
  85.     SetTitle "PixFolio Setup"
  86.     szTempDir$ = GetSymbolValue("STF_CWDDIR")
  87.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  88.     IF szInf$ = "" THEN
  89.         szInf$ = GetSymbolValue("STF_CWDDIR") + "PIXSETUP.INF"
  90.     END IF
  91.     ReadInfFile szInf$
  92. ''    NOPT$="1"
  93.  
  94.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  95. ''    DEST$ = WINDRIVE$ + ":\PIXFOLIO"
  96.     DEST$ = ".............................................................................................................................."
  97.     GetPixDir DEST$
  98.     if DEST$ = "" THEN
  99.         DEST$ = WINDRIVE$ + ":\PIXFOLIO"
  100.     END IF
  101.     ini$ = MakePath(GetWindowsDir, "WIN.INI")
  102.  
  103.     ''CustInst list symbols
  104.     CHECKSTATES$ = "CheckItemsState"
  105.     STATUSTEXT$  = "StatusItemsText"
  106.     DRIVETEXT$   = "DriveStatusText"
  107. '   FOR i% = 1 TO 3 STEP 1
  108.         AddListItem CHECKSTATES$, "ON"  '' Main program files
  109.         AddListItem CHECKSTATES$, "OFF" '' Photo CD
  110.         AddListItem CHECKSTATES$, "OFF" '' VFW
  111.         AddListItem CHECKSTATES$, "OFF" '' Multimedia
  112.         AddListItem CHECKSTATES$, "OFF" '' Symbols
  113. '    NEXT i%
  114.     FOR i% = 1 TO 5 STEP 1
  115.         AddListItem STATUSTEXT$, ""
  116.     NEXT i%
  117.     FOR i% = 1 TO 7 STEP 1
  118.         AddListItem DRIVETEXT$, ""
  119.     NEXT i%
  120.     ReplaceListItem DRIVETEXT$, 7, DEST$
  121.  
  122.     ''Disk cost list symbols
  123.     APPNEEDS$   = "AppNeeds"
  124.     OPT1NEEDS$  = "Opt1Needs"
  125.     OPT2NEEDS$  = "Opt2Needs"
  126.     OPT3NEEDS$  = "Opt3Needs"
  127.     SYMNEEDS$   = "SymNeeds"
  128.     EXTRACOSTS$ = "ExtraCosts"
  129.     BIGLIST$    = "BigList"
  130.     FOR i% = 1 TO 5 STEP 1
  131.         AddListItem BIGLIST$, ""
  132.     NEXT i%
  133.     FOR i% = 1 TO 26 STEP 1
  134.         AddListItem EXTRACOSTS$, "0"
  135.     NEXT i%
  136.  
  137.     ''File Option Variables
  138.     OPT1OPT$ = "1"
  139.     OPT2OPT$ = "1"
  140.     OPT3OPT$ = "1"
  141.     SYMOPT$  = "1"
  142.  
  143.     SysDir$ = GetWindowsSysDir()
  144.     RecalcPath
  145. ''    i% = DoMsgBox("RecalcPath OK", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  146.     SetDriveStatus
  147. ''    i% = DoMsgBox("SetDriveStatus OK", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  148.  
  149.  
  150.     OPTCUR$ = "1"
  151. '    DEST$ = "C:\PIXFOLIO"
  152.  
  153. '$IFDEF DEBUG
  154.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  155.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  156.     IF IsDriveValid(WinDrive$) = 0 THEN
  157.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  158.     GOTO QUIT
  159.     END IF
  160. '$ENDIF ''DEBUG
  161.  
  162.  
  163. WELCOME:
  164.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  165.     IF sz$ = "CONTINUE" THEN
  166.     UIPop 1
  167.     ELSE
  168.     GOSUB ASKQUIT
  169.     GOTO WELCOME
  170.     END IF
  171.  
  172.  
  173. OPTION:
  174.     SetSymbolValue "RadioDefault", OPTCUR$
  175. OPTL1:
  176.     NOPT$="0"
  177.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  178.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  179.     ''i% = DoMsgBox("("+OPTCUR$+")", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)    
  180.     IF OPTCUR$="1" THEN
  181.       NOPT$="0"
  182.       RecalcPath
  183.       SetDriveStatus
  184.     ELSE
  185.       NOPT$="1"
  186.       RecalcPath
  187.       SetDriveStatus
  188.     END IF
  189.  
  190.     IF sz$ = "CONTINUE" THEN
  191.     UIPop(1)
  192.     ELSEIF sz$ = "REACTIVATE" THEN
  193.     GOTO OPTL1
  194.     ELSE
  195.     GOSUB ASKQUIT
  196.     GOTO OPTION
  197.     END IF
  198.  
  199.  
  200. CUSTINST:
  201.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", CUSTHELP, HELPPROC$)
  202.  
  203.     IF sz$ = "CONTINUE" THEN
  204.         ''Install only if it will fit.
  205.         FOR i% = 1 TO 5 STEP 1
  206.             IF GetListItem(BIGLIST$, i%) <> "" THEN
  207.                 GOSUB TOOBIG
  208.                 GOTO CUSTINST
  209.             END IF
  210.         NEXT i%
  211.         UIPop 1
  212.         GOTO INSTALLIT
  213.     ELSEIF sz$ = "PATH" THEN
  214.         GOTO GETPATH
  215.     ELSEIF sz$ = "CHK1" THEN
  216.         IF DoesFileExist(MakePath(DEST$, "PIXFOLIO.EXE"), femReadWrite) = 0 AND GetListItem(CHECKSTATES$, APPFILES) = "OFF" THEN
  217.             GOSUB NOAPP
  218.             GOTO CUSTINST
  219.         END IF
  220.         RecalcOptFiles APPFILES
  221.         RecalcOptFiles SYMFILES
  222.         SetDriveStatus
  223.         GOTO CUSTINST
  224.     ELSEIF sz$ = "CHK2" THEN
  225.         RecalcOptFiles OPTFILES1
  226.         RecalcOptFiles SYMFILES
  227.         SetDriveStatus
  228.         GOTO CUSTINST
  229.     ELSEIF sz$ = "CHK3" THEN
  230.         IF GetListItem(CHECKSTATES$, OPTFILES2) = "ON" THEN
  231.             IF CheckForAVI = 0 THEN
  232.                 GOSUB NOAVI
  233.                 ReplaceListItem CHECKSTATES$, OPTFILES2, "OFF"  
  234.             END IF
  235.         END IF
  236.         RecalcOptFiles OPTFILES2
  237.         RecalcOptFiles SYMFILES
  238.         SetDriveStatus
  239.         GOTO CUSTINST
  240.     ELSEIF sz$ = "CHK4" THEN
  241.         RecalcOptFiles OPTFILES3
  242.         RecalcOptFiles SYMFILES
  243.         SetDriveStatus
  244.         GOTO CUSTINST
  245.     ELSEIF sz$ = "CHK5" THEN
  246.         RecalcOptFiles SYMFILES
  247.         SetDriveStatus
  248.         GOTO CUSTINST
  249.  
  250.     ELSEIF sz$ = "BTN2" THEN
  251.         GOTO OPTFILES1
  252.     ELSEIF sz$ = "BTN3" THEN
  253.         GOTO OPTFILES2
  254.     ELSEIF sz$ = "BTN4" THEN
  255.         GOTO OPTFILES3
  256.     ELSEIF sz$ = "BTN5" THEN
  257.         GOTO SYMFILES
  258.     ELSEIF sz$ = "REACTIVATE" THEN
  259.         RecalcPath
  260.         SetDriveStatus
  261.         GOTO CUSTINST
  262.     ELSE
  263.         GOTO OPTION
  264.         ''GOSUB ASKQUIT
  265.         ''GOTO CUSTINST
  266.     END IF
  267.  
  268.  
  269. GETPATH:
  270.     SetSymbolValue "EditTextIn", DEST$
  271.     SetSymbolValue "EditFocus", "END"
  272. GETPATHL1:
  273.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  274.  
  275.     IF sz$ = "CONTINUE" THEN
  276.         olddest$ = DEST$
  277.         DEST$ = GetSymbolValue("EditTextOut")
  278.  
  279.         ''Validate new path.
  280.         IF IsDirWritable(DEST$) = 0 THEN
  281.             GOSUB BADPATH
  282.             GOTO GETPATHL1
  283.         END IF
  284.         UIPop 1
  285.  
  286.         ''Truncate display if too long.
  287.         IF LEN(DEST$) > 23 THEN
  288.             ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
  289.         ELSE
  290.             ReplaceListItem DRIVETEXT$, 7, DEST$
  291.         END IF
  292.  
  293.         ''Recalc if path changed.
  294.         IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  295.             RecalcPath
  296.             SetDriveStatus
  297.         END IF
  298.  
  299.         olddest$ = ""
  300.         GOTO CUSTINST
  301.     ELSEIF sz$ = "REACTIVATE" THEN
  302.         RecalcPath
  303.         SetDriveStatus
  304.         GOTO GETPATHL1
  305.     ELSEIF sz$ = "EXIT" THEN
  306.         GOSUB ASKQUIT
  307.         GOTO GETPATHL1
  308.     ELSE
  309.         UIPop 1
  310.         GOTO CUSTINST
  311.     END IF
  312.  
  313. INSTALLIT:
  314.     SetSymbolValue "SERIAL", "2X09AA001302"
  315.     SetSymbolValue "OWNER", "Aztech New Media Corp."
  316.     IF DoesFileExist(MakePath(DEST$, "PIXFOLIO.EXE"), femReadWrite) = 1 THEN
  317.         l& = GetStringTable(D